﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NeuralStock.DataAccess;
using NeuralStock.Common;
using NeuralStock.Entities;

namespace NeuralStock.DomainService.Interfaces
{
    public interface IFinancialReportService
    {
        IEnumerable<FinancialReport> GetAll();

        IEnumerable<FinancialReport> GetAllForCompany(int companyId);

        IEnumerable<FinancialReport> GetAllByCompanyAndYearSpan(int companyId, int startYear, int endYear);

        IEnumerable<FinancialReport> GetFinancialReportsForCapEbit(int companyId, int lastReportYear, int analyzedReportsYearSpan);

        FinancialReport Get(int companyId, int year);

        FinancialReport Get(int reportId);

        bool FinancialReportsExist(int companyId, int yearFrom, int yearTo);       

        void Create(FinancialReportData financialReportData);

        void Update(int reportId, FinancialReportData financialReportData);

        void Delete(int reportId);
    }
}
